//==================================================
// 作 者：曾浩
// 日 期：2012-03-15
// 描 述：介绍本文件所要完成的功能以及背景信息等等
//==================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoreFrame.Core.Orm;
using System.Data;

namespace MarchEstate.Manager.BusinesEntity
{
	[Serializable]
	[Table(TableName = "WY_Account", EntityType = EntityType.Table, IsGB = false)]
	public abstract class AbstractAccount : CoreFrame.Business.AbstractBusines
	{
		private string _accountid;//
		/// <summary>
		/// 
		/// </summary>
        [Column(FieldName = "AccountID", DataKey = true, IsSingleQuote = true, Match = "Custom:Guid", IsInsert = false)]
		public string AccountID
		{
			get { return _accountid; }
			set { _accountid = value; }
		}
		private DateTime _accountdate;//
		/// <summary>
		/// 
		/// </summary>
		[Column(FieldName = "AccountDate", DataKey = false, IsSingleQuote = true, Match = "", IsInsert = true)]
		public DateTime AccountDate
		{
			get { return _accountdate; }
			set { _accountdate = value; }
		}
		private int _accountempid;//交款人
		/// <summary>
		/// 交款人
		/// </summary>
		[Column(FieldName = "AccountEmpID", DataKey = false, IsSingleQuote = true, Match = "", IsInsert = true)]
        public int AccountEmpID
		{
			get { return _accountempid; }
			set { _accountempid = value; }
		}
		private string _accountempname;//
		/// <summary>
		/// 
		/// </summary>
		[Column(FieldName = "AccountEmpName", DataKey = false, IsSingleQuote = true, Match = "", IsInsert = true)]
		public string AccountEmpName
		{
			get { return _accountempname; }
			set { _accountempname = value; }
		}
		private decimal _totalfee;//
		/// <summary>
		/// 
		/// </summary>
		[Column(FieldName = "TotalFee", DataKey = false, IsSingleQuote = false, Match = "", IsInsert = true)]
		public decimal TotalFee
		{
			get { return _totalfee; }
			set { _totalfee = value; }
		}

        private decimal _bankFee;//
        /// <summary>
        /// 
        /// </summary>
        [Column(FieldName = "BankFee", DataKey = false, IsSingleQuote = false, Match = "", IsInsert = true)]
        public decimal BankFee
        {
            get { return _bankFee; }
            set { _bankFee = value; }
        }

        private decimal _surplusFee;//
        /// <summary>
        /// 
        /// </summary>
        [Column(FieldName = "SurplusFee", DataKey = false, IsSingleQuote = false, Match = "", IsInsert = true)]
        public decimal SurplusFee
        {
            get { return _surplusFee; }
            set { _surplusFee = value; }
        }

        private int _roomjoinNum;//
        /// <summary>
        /// 
        /// </summary>
        [Column(FieldName = "RoomjoinNum", DataKey = false, IsSingleQuote = false, Match = "", IsInsert = true)]
        public int RoomjoinNum
        {
            get { return _roomjoinNum; }
            set { _roomjoinNum = value; }
        }

        private int _carportjoinNum;//
        /// <summary>
        /// 
        /// </summary>
        [Column(FieldName = "CarportjoinNum", DataKey = false, IsSingleQuote = false, Match = "", IsInsert = true)]
        public int CarportjoinNum
        {
            get { return _carportjoinNum; }
            set { _carportjoinNum = value; }
        }

        public abstract int[] GetTodayJoinNum(DateTime joindate);

        public abstract decimal GetTotalFee(string accountId);

        public abstract List<AbstractChargeMoney> GetAccountChargeList(string accountId);

        public abstract DataTable GetAccountItemClassData(string accountId);
        /// <summary>
        /// 交款
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        public abstract bool SaveAccount(AbstractAccount account);

        public abstract AbstractAccount GetAccount(string accountId);

        public abstract List<AbstractAccount> GetAccountList(DateTime bdate,DateTime edate);
	}
}